package nc.itf.gl;

import java.util.Map;

import nc.ui.querytemplate.querytree.IQueryScheme;
import nc.vo.gl.offset.AggOffsetVO;
import nc.vo.gl.offset.OffsetBVO;
import nc.vo.gl.offset.OffsetVO;
import nc.vo.pub.BusinessException;

public interface IOffsetMaintain {

	public void delete(AggOffsetVO[] clientFullVOs,
			AggOffsetVO[] originBills) throws BusinessException;

	public AggOffsetVO[] insert(AggOffsetVO[] clientFullVOs,
			AggOffsetVO[] originBills) throws BusinessException;

	public AggOffsetVO[] update(AggOffsetVO[] clientFullVOs,
			AggOffsetVO[] originBills) throws BusinessException;

	public AggOffsetVO[] query(IQueryScheme queryScheme)
			throws BusinessException;

	public AggOffsetVO[] save(AggOffsetVO[] clientFullVOs,
			AggOffsetVO[] originBills) throws BusinessException;

	public AggOffsetVO[] unsave(AggOffsetVO[] clientFullVOs,
			AggOffsetVO[] originBills) throws BusinessException;

	public AggOffsetVO[] approve(AggOffsetVO[] clientFullVOs,
			AggOffsetVO[] originBills) throws BusinessException;

	public AggOffsetVO[] unapprove(AggOffsetVO[] clientFullVOs,
			AggOffsetVO[] originBills) throws BusinessException;
	
	public Map<String, OffsetBVO[]> queryVoucherDetail(OffsetVO queryvo) throws BusinessException;
	
	public Map<String, OffsetBVO[]> createVoucher_Auto(Map<String, Object> querymap) throws BusinessException;
	public Map<String, OffsetBVO[]> createVoucher_Hand(Map<String, Object> querymap) throws BusinessException;
	
	public OffsetVO[] queryHead(IQueryScheme queryScheme) throws BusinessException;
	
	public void createHistory(IQueryScheme queryScheme) throws BusinessException;
	
	public void deleteData(String[] billids) throws BusinessException;
}
